﻿using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace ClientApp.Models
{
    public class ChangePrivacyModel
    {
        [Required]
        [Display(Name = "Email address")]
        [DataType(DataType.EmailAddress)]
        [StringLength(256, ErrorMessage = "The {0} must be at most {1} characters long.")]
        [RegularExpression(@"\w+@[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4}|[0-9]{1,3})", ErrorMessage = "Invalid Email format")]
        public string Email { get; set; }

        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Current password")]
        public string OldPassword { get; set; }

        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "New password")]
        public string NewPassword { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm new password")]
        [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }

    public class LogOnModel
    {
        [Required]
        [Display(Name = "User name")]
        [StringLength(50, ErrorMessage = "The {0} must be at most {1} characters long.")]
        [RegularExpression(@"[a-zA-Z]\w+", ErrorMessage = "{0} should contain letters or digits in set A-Za-z0-9")]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        [StringLength(100, ErrorMessage = "The {0} must be at most {1} characters long.")]
        public string Password { get; set; }
    }

    public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        [StringLength(50, ErrorMessage = "The {0} must be at most {1} characters long.")]
        [RegularExpression(@"[a-zA-Z]\w+", ErrorMessage = "{0} should contain letters or digits only. The first symbol has to be letter.")]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.EmailAddress)]
        [StringLength(256, ErrorMessage = "The {0} must be at most {1} characters long.")]
        [RegularExpression(@"\w+@[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4}|[0-9]{1,3})", ErrorMessage = "Invalid Email format")]
        [Display(Name = "Email address")]
        public string Email { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }

    }
}
